package com.heima.demo06;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

/**
 * 第六题: 通过代码, 完成如下需求:
 * 1. 定义ArrayList集合，存入多个字符串, 例如: "ab1", "123ad", "def", "bca", "def", "def", "dadfadf"  "dddaaa"  "你好啊"  "我来啦"  "别跑啊"
 * 2. 遍历集合, 删除长度大于5的字符串, 打印删除后的集合对象
 * 3. 基于上一步, 删除集合中元素包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串), 打印删除后的集合对象.
 * 4. 基于上一步, 删除集合中所有的"def"字符串, 打印删除后的集合对象.
 */
public class Test {
    public static void main(String[] args) {
        //定义ArrayList集合
        ArrayList<String> list = new ArrayList<>();
        list.add("ab1");
        list.add("123ad");
        list.add("def");
        list.add("bca");
        list.add("def");
        list.add("def");
        list.add("dadfadf");
        list.add("dddaaa");
        list.add("你好啊");
        list.add("我来啦");
        list.add("别跑啊");
        System.out.println("---------------------------------------------");
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).length() > 5) {
                list.remove(i);
                i--;
            }
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
/*        Iterator<String> iterator1 = list.iterator();
        while (iterator1.hasNext()){
            String s=iterator1.next();
            if (s.length()>5)
                iterator1.remove();
        }

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        System.out.println("---------------------------------------------");

        ListIterator<String> iterator = list.listIterator();
        while (iterator.hasNext()){
            String s=iterator.next();
            if (s.length()>5)
                iterator.remove();
        }

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }*/

        System.out.println("---------------------------------------------");
        //3. 基于上一步, 删除集合中元素包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串), 打印删除后的集合对象.
        ListIterator<String> iterator2 = list.listIterator();
        while (iterator2.hasNext()) {
            String s = iterator2.next();
            for (int i = 0; i <= 9; i++) {
                if (s.contains(String.valueOf(i))) {
                    iterator2.remove();
                    break;
                }
            }
        }

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        System.out.println("---------------------------------------------");
        //4. 基于上一步, 删除集合中所有的"def"字符串, 打印删除后的集合对象.
        for (int i = list.size() - 1; i >= 0; i--) {
            if ("def".equals(list.get(i)))
                list.remove(i);
        }

        for (String s : list) {
            System.out.println(s);
        }
    }
}
